home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / mhs / glbmdm.txt < prev    next >
Text File  |  1993-10-22  |  50KB  |  1,088 lines

  1.  
  2.               NOVELL TECHNICAL INFORMATION DOCUMENT
  3.  
  4. TITLE:              GLBMDM.TXT MHS Modem Definition File
  5. DOCUMENT ID:        TID200001
  6. DOCUMENT REVISION:  A
  7. DATE:               31AUG93
  8. ALERT STATUS:       Yellow
  9. INFORMATION TYPE:   Issue
  10. README FOR:         NA
  11.  
  12. NOVELL PRODUCT and VERSION:
  13. NetWare Global MHS 2.0
  14.  
  15. ABSTRACT:
  16.  
  17. This file describes how to write a Modem Definition File (MDF) for NetWare
  18. Global MHS (GMHS).  The intended audience is anyone who needs to develop an
  19. MDF for a modem for which no MDF exists.
  20.  
  21. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  22.  
  23. DISCLAIMER
  24. THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL.  NOVELL
  25. MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY THIS INFORMATION.  HOWEVER, THE
  26. INFORMATION PROVIDED IN THIS DOCUMENT IS FOR YOUR INFORMATION ONLY.  NOVELL
  27. MAKES NO EXPLICIT OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION.
  28. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  29.  
  30.  
  31. ISSUE
  32.  
  33. 1.0 Introduction
  34.  
  35. The Message Handling System (MHS) is a set of products that pickup and
  36. deliver messages for users, applications, or other messaging services.  These
  37. MHS products can define MHS hosts and MHS users, which can communicate with
  38. each other over phone lines using asynchronous serial ports and modems. 
  39. Global MHS (GMHS) is the flagship member of the MHS product family. 
  40. Throughout this document,  MHS will be used when referring to the MHS
  41. technology and product family in general, GMHS will refer to the specific
  42. implementation of Global MHS.
  43.  
  44. MHS uses asynchronous, RS-232C serial ports to connect to modems.  GMHS uses
  45. the Asynchronous Input/Output (AIO) NLMs to control the serial ports.  AIO
  46. serial ports can be COMx type ports or on intelligent multi-port serial
  47. adapters.  MHS uses an internal modem driver to control modems.
  48.  
  49. MHS must configure, reset, initialize, dial, answer, connect, and hang-up
  50. modems, both in dial up and leased line environments.  Since there are many
  51. manufacturers and models of modems, with different features and command sets,
  52. MHS needs a mechanism for interfacing with each type of modem.  For GMHS,
  53. this mechanism is the MDF and it works with the internal GMHS modem driver to
  54. control each type of modem.  The MDF file provides the GMHS modem driver with
  55. the specific parameters for particular modems so that the driver can perform
  56. these functions.  Refer to Section 2 for details on the MDF format and
  57. Section 3 for details on MDF usage. 
  58. Although the GMHS product supplies a variety of MDFs for a variety of modem
  59. types, not all modem types can be defined by these supplied MDFs.  Therefore,
  60. additional MDFs will have to be created by third parties, using this document
  61. and any ASCII-capable editor.  Refer to appendix A for general guidelines on
  62. creating a MDF, appendices B-D contain examples of MDFs, and appendices E-F
  63. have information for debugging MDFs. 
  64.  
  65. 2.0 Format
  66.  
  67. A MDF is an ASCII file that defines a modem type using keywords and their
  68. values.  A MDF keyword and its value is the definition of how MHS will
  69. control a modem for a specific task.  There are 60 pre-defined MDF keywords,
  70. some for defining modem capabilities, some for defining modem commands, and
  71. others for defining modem responses.
  72.  
  73. A MDF keyword is a pre-defined ASCII string, with or without spaces, that
  74. begins each line in a MDF.  An equal sign separates the MDF keyword from its
  75. value.  A value can be a single character, word, number or it can be multiple
  76. characters, words, numbers or it can be nothing.  Some characters, words, and
  77. numbers are pre-defined.  A value is ended by carriage return, line feed(s).
  78.  
  79. For single character or string values, ASCII control characters can be
  80. represented by special two character sequences. These sequences always begin
  81. with the ^ character, following the commonly used representation for ASCII
  82. control characters.  For example, ^J is the representation for line feed and
  83. ^M is the representation for carriage return.
  84.  
  85. There is no restriction on the order of MDF keywords in a MDF file.  If the
  86. MDF keyword is irrelevant for defining how to control this modem type, the
  87. MDF keyword can be left out of the MDF.  If the MDF keyword's default value
  88. already defines how to control this modem type, the MDF keyword can be left
  89. out of the MDF.  MDF keywords, and pre-defined value strings, are treated as
  90. case insensitive.  A semicolon as the first character of a line indicates
  91. that this line is a comment line and will be ignored.
  92.  
  93. 2.1 MDF DESCRIPTION
  94.  
  95. This keyword is used to describe the modem(s) supported by this modem
  96. definition.  The description is limited to 60 characters and there is no
  97. default description.  Currently, the description is not used or displayed but
  98. should be included for documentation purposes.
  99.  
  100. 2.2 MDF TYPE
  101.  
  102. This keyword is used to designate Hayes type command and response processing,
  103. i.e., send an ASCII command string and wait for a pre-defined ASCII response
  104. string.  The default value is HAYES.  This keyword is used to validate a MDF
  105. as compatible with an MHS product.  If an incompatible type is found, GMHS
  106. will report an error and will not use this MDF.  Currently, the only
  107. compatible value is HAYES.
  108.  
  109. Although GMHS will use the default value if this keyword is not found in the
  110. MDF, this keyword should be included in each MDF as insurance against
  111. inappropriate behavior by future versions of MHS products.
  112.  
  113. 2.3 MDF VERSION
  114.  
  115. This keyword is used to assign a version to a MDF.  Its value can be from one
  116. to 65,535.  The default value is currently two.  This keyword is used to
  117. validate a MDF as compatible with an MHS product.  If an incompatible version
  118. is found, GMHS will report an error and will not use this MDF.  The
  119. compatible values for current MHS products are one and two; one was a beta
  120. version value that is no longer used.
  121.  
  122. Although GMHS will use the default value if this keyword is not found in the
  123. MDF, this keyword should be included in each MDF as insurance against
  124. inappropriate behavior by future versions of MHS products.
  125.  
  126. 2.4 FLOW CONTROL
  127.  
  128. This keyword is used to designate that this modem supports (or does not
  129. support) the standard RTS/CTS hardware signaling for flow control with this
  130. modem.  Its value can be TRUE (support) or FALSE (not support).  The default
  131. value is FALSE.
  132.  
  133. During modem protocol connections (see below), data transfers can be
  134. temporarily disabled, by toggling CTS or RTS, to avoid data loss when buffers
  135. become full due to resending of corrupted data or expansion of compressed
  136. data.  GMHS enables flow control after receiving a modem CONNECTion response
  137. (see below) and before initiating a modem hang-up (see below).  GMHS disables
  138. flow control while sending modem commands and receiving modem responses.
  139.  
  140. 2.5 MODEM SPEEDS
  141.  
  142. This keyword is used to specify the modem speeds that can be used with this
  143. modem.  It is used during configuration of a GMHS product to check for
  144. errors, e.g., a 2400 bps modem should not be configured for 9600 bps.  Each
  145. speed must be separated by a comma.  The default is 300, 1200, 2400, 9600.
  146.  
  147. There is no restriction on the order of speeds.  If an unsupported speed is
  148. found, GMHS reports an error, stops processing the speed values, but retains
  149. the already processed speeds.  The supported speeds are 300, 1200, 2400,
  150. 9600, and 14400.
  151.  
  152. 2.6 MAX SPEED
  153.  
  154. This keyword is used to specify the maximum serial port speed that will be
  155. attempted when communicating to this modem.  Its value can be any serial
  156. speed, from 50 to 115200.  It is also used during configuration of GMHS to
  157. check for errors, e.g., older 2400 bps modems may not support speeds higher
  158. than 2400.  The default value is 2400.
  159.  
  160. If no serial speed is specified during configuration, GMHS will use either
  161. this value or the highest serial speed supported by the driver/hardware
  162. attached to this modem, whichever is smaller.  For modem protocol connections
  163. (see below), it is important to have the serial speed greater than the modem
  164. speed, for better throughput.
  165.  
  166. 2.7 ADJUST SPEED
  167.  
  168. This keyword is used to designate that this modem supports (or does not
  169. support) the adjustment of the serial speed after the modem CONNECTion
  170. response.  Its value can be TRUE (support) or FALSE (not support).  The
  171. default value is TRUE.
  172.  
  173. However, if the PROTOCOL ON keyword is specified and used, this keyword is
  174. ignored because the serial speed is assumed to be fixed, i.e., the serial
  175. speed should not be changed after the modem CONNECTion response.
  176.  
  177. 2.8 COMMAND BEGIN
  178.  
  179. This keyword is used to specify the beginning of command strings that are
  180. sent to this modem.  Its value can be any sequence of ASCII characters,
  181. including control characters, with a total length not exceeding 10
  182. characters.  The default value is AT.
  183.  
  184. 2.9 COMMAND END
  185.  
  186. This keyword is used to specify the end of command strings that are sent to
  187. this modem.  Its value can be any sequence of ASCII characters, including
  188. control characters, with a total length not exceeding two characters.  The
  189. default value is ^M, i.e., carriage return.
  190.  
  191. 2.10 MAX COMMAND
  192.  
  193. This keyword is used to specify the length of the maximum command string that
  194. can be sent to this modem.  This length does not include the COMMAND BEGIN
  195. and the COMMAND END strings.  Its value can be from one to 255.  The default
  196. value is 40.
  197.  
  198. 2.11 RESET
  199.  
  200. This keyword is used to specify the command string, not including COMMAND
  201. BEGIN and COMMAND END, that will be sent to this modem to reset it.  This
  202. command is sent prior to initialization and after hang-up.  Its value can be
  203. any sequence of ASCII characters, including control characters, with a total
  204. length not exceeding 40 characters.  The default value is Z.
  205.  
  206. 2.12 RESET TIME
  207.  
  208. This keyword is used to specify the amount of time, in seconds, to wait for a
  209. modem response after sending a RESET command.  Its value can be from three to
  210. 30 seconds.  The default value is four seconds.
  211.  
  212. 2.13 INIT (first)
  213.  
  214. This keyword is used to specify the command string, not including COMMAND
  215. BEGIN and COMMAND END, that will be sent to this modem to initialize it.  No
  216. valid modem response is required.  This command is sent after the RESET
  217. command.  Its value can be any sequence of ASCII characters, including
  218. control characters, with a total length not exceeding 40 characters.  The
  219. default value is EQV1X4S0=0S2=43S3=13S4=10S7=254S12=50.
  220.  
  221. 2.14 INIT (second)
  222.  
  223. This keyword is used to specify the command string, not including COMMAND
  224. BEGIN and COMMAND END, that will be sent to this modem to continue
  225. initializing it.  A valid modem response is required.  This command is sent
  226. after the first INIT command.  Its value can be any sequence of ASCII
  227. characters, including control characters, with a total length not exceeding
  228. 40 characters.  There is no default value.
  229.  
  230. If this modem does not require the serial speed to be adjusted after a modem
  231. CONNECTion response, i.e., ADJUST SPEED is FALSE, then the commands to
  232. maintain a fixed serial speed should be specified in the second or third INIT
  233. strings.  For modem protocol connections (see below) and for mismatched
  234. speeds between modems, it is important to have the serial speed greater than
  235. the modem speed, for better throughput.
  236.  
  237. 2.15 INIT (third)
  238.  
  239. This keyword is used to specify the command string, not including COMMAND
  240. BEGIN and COMMAND END, that will be sent to this modem to continue
  241. initializing it.  A valid modem response is required.  This command is sent
  242. after the second INIT command.  Its value can be any sequence of ASCII
  243. characters, including control characters, with a total length not exceeding
  244. 40 characters.  There is no default value.
  245.  
  246. 2.16 SPEAKER ON
  247.  
  248. This keyword is used to specify the command string, not including COMMAND
  249. BEGIN and COMMAND END, that will be sent to this modem to turn the modem
  250. speaker on.  No valid modem response is required.  This command is sent after
  251. the last INIT command.  Its value can be any sequence of ASCII characters,
  252. including control characters, with a total length not exceeding 40
  253. characters.  The default value is M1.
  254.  
  255. 2.17 SPEAKER OFF
  256.  
  257. This keyword is used to specify the command string, not including COMMAND
  258. BEGIN and COMMAND END, that will be sent to this modem to turn the modem
  259. speaker off.  No valid modem response is required.  This command is sent
  260. after the last INIT command.  Its value can be any sequence of ASCII
  261. characters, including control characters, with a total length not exceeding
  262. 40 characters.  The default value is M.
  263.  
  264. 2.18 PROTOCOL ON
  265.  
  266. This keyword is used to specify the command string, not including COMMAND
  267. BEGIN and COMMAND END, that will be sent to this modem to attempt a modem
  268. protocol (error-control and data compression) connection.  Modem protocol
  269. connections are only attempted if specified by the GMHS configuration.  The
  270. remote modem will also have to attempt a modem protocol connection for this
  271. modem to actually establish a modem protocol connection.  No valid modem
  272. response is required.
  273.  
  274. Its value can be any sequence of ASCII characters, including control
  275. characters, with a total length not exceeding 40 characters.  There is no
  276. default value because not all modems support this type of functionality.
  277.  
  278. 2.19 PROTOCOL OFF
  279.  
  280. This keyword is used to specify the command string, not including COMMAND
  281. BEGIN and COMMAND END, that will be sent to this modem to not attempt a modem
  282. protocol (error-control and data compression) connection.  No valid modem
  283. response is required.
  284.  
  285. Its value can be any sequence of ASCII characters, including control
  286. characters, with a total length not exceeding 40 characters.  There is no
  287. default value because not all modems support this type of functionality.
  288.  
  289. 2.20 LEASED DIAL
  290.  
  291. This keyword is used to specify the command string, not including COMMAND
  292. BEGIN and COMMAND END, that will be sent to this modem to select leased line,
  293. dial operation.  The remote modem will have to select leased line, answer
  294. operation for this modem to go on-line.  Leased line operation is only
  295. selected if specified by the GMHS configuration.  A valid modem response is
  296. required, eventually.
  297.  
  298. Its value can be any sequence of ASCII characters, including control
  299. characters, with a total length not exceeding 40 characters.  There is no
  300. default value because not all modems support this type of functionality.  If
  301. this keyword is specified, the LEASED ANSWER keyword must also be specified.
  302.  
  303. 2.21 LEASED ANSWER
  304.  
  305. This keyword is used to specify the command string, not including COMMAND
  306. BEGIN and COMMAND END, that will be sent to this modem to select leased line,
  307. answer operation.  The remote modem will have to select leased line, dial
  308. operation for this modem to go on-line.  Leased line operation is only
  309. selected if specified by the GMHS configuration.  A valid modem response is
  310. required, eventually.
  311.  
  312. Its value can be any sequence of ASCII characters, including control
  313. characters, with a total length not exceeding 40 characters.  There is no
  314. default value because not all modems support this type of functionality.  If
  315. this keyword is specified, the LEASED DIAL keyword must also be specified.
  316.  
  317. 2.22 LEASED EXTERNAL
  318.  
  319. This keyword is used to designate that this modem does not require any modem
  320. commands to be sent to it to select leased line operation, i.e., this is done
  321. externally, usually with physical switches.  Its value can be TRUE (external,
  322. don't send modem commands) or FALSE (not external, send modem commands).  The
  323. default is FALSE.
  324.  
  325. The LEASED DIAL and LEASED ANSWER keywords should still be specified, but
  326. with no values, to indicate that this modem supports leased line operation.
  327.  
  328. 2.23 LEASED RESPONSE
  329.  
  330. This keyword is used to designate that this modem does not return any command
  331. responses when leased line operation is selected or when the modems have
  332. successfully made a leased line connection.  Instead, a successful leased
  333. line connection is indicated by an active DCD signal.  Its value can be TRUE
  334. (response expected) or FALSE (no response).  The default is TRUE.
  335.  
  336. The LEASED DIAL and LEASED ANSWER keywords should still be specified, but
  337. with no values, to indicate that this modem supports leased line operation.
  338.  
  339. 2.24 DIAL TONE
  340.  
  341. This keyword is used to specify the command string, not including COMMAND
  342. BEGIN and COMMAND END, that will be sent to this modem to tone dial a
  343. telephone number. The telephone number is specified by the GMHS
  344. configuration.  Valid modem response(s) are required, ending with one of the
  345. CONNECT responses (see below).
  346.  
  347. Its value can be any sequence of ASCII characters, including control
  348. characters, with a total length not exceeding 40 characters.  The default
  349. value is DT.
  350.  
  351. 2.25 DIAL PULSE
  352.  
  353. This keyword is used to specify the command string, not including the COMMAND
  354. BEGIN and COMMAND END, that will be sent to this modem to pulse dial a
  355. telephone number.  The telephone number is specified by the GMHS
  356. configuration.  Valid modem response(s) are required, ending with one of the
  357. CONNECT responses (see below).
  358.  
  359. Its value can be any sequence of ASCII characters, including control
  360. characters, with a total length not exceeding 40 characters.  The default
  361. value is DP.
  362.  
  363. 2.26 DIAL ESCAPE
  364.  
  365. This keyword is used to specify the character that will be added to the end
  366. of a DIAL TONE/PULSE command when breaking up a phone number that exceeds the
  367. MAX COMMAND length.  It is placed at the end of a DIAL TONE/PULSE command
  368. string, just before the COMMAND END, to instruct this modem to return to the
  369. command state immediately after dialing, without breaking the connection. 
  370. This allows for another command string to follow, with the remaining phone
  371. number.
  372.  
  373. Its value can be any sequence of ASCII characters, including control
  374. characters, with a total length not exceeding 40 characters.  The default
  375. value is a semicolon.
  376.  
  377. 2.27 DIAL 300
  378.  
  379. This keyword is used to specify the command string, not including COMMAND
  380. BEGIN and COMMAND END, that will be sent to this modem to attempt to initiate
  381. a connection at 300 bps.  A valid modem response is required.  This command
  382. is sent before the DIAL TONE/PULSE commands.
  383.  
  384. Its value can be any sequence of ASCII characters, including control
  385. characters, with a total length not exceeding 40 characters.  There is no
  386. default value because not all modems support this type of functionality.
  387.  
  388. 2.28 DIAL 1200
  389.  
  390. This keyword is used to specify the command string, not including COMMAND
  391. BEGIN and COMMAND END, that will be sent to this modem to attempt to initiate
  392. a connection at 1200 bps.  A valid modem response is required.  This command
  393. is sent before the DIAL TONE/PULSE commands.
  394.  
  395. Its value can be any sequence of ASCII characters, including control
  396. characters, with a total length not exceeding 40 characters.  There is no
  397. default value because not all modems support this type of functionality.
  398.  
  399. 2.29 DIAL 2400
  400.  
  401. This keyword is used to specify the command string, not including COMMAND
  402. BEGIN and COMMAND END, that will be sent to this modem to attempt to initiate
  403. a connection at 2400 bps.  A valid modem response is required.  This command
  404. is sent before the DIAL TONE/PULSE commands.
  405.  
  406. Its value can be any sequence of ASCII characters, including control
  407. characters, with a total length not exceeding 40 characters.  There is no
  408. default value because not all modems support this type of functionality.
  409.  
  410. 2.30 DIAL 9600
  411.  
  412. This keyword is used to specify the command string, not including COMMAND
  413. BEGIN and COMMAND END, that will be sent to this modem to attempt to initiate
  414. a connection at 9600 bps.  A valid modem response is required.  This command
  415. is sent before the DIAL TONE/PULSE commands.
  416.  
  417. Its value can be any sequence of ASCII characters, including control
  418. characters, with a total length not exceeding 40 characters.  There is no
  419. default value because not all modems support this type of functionality.
  420.  
  421. 2.31 DIAL 14400
  422.  
  423. This keyword is used to specify the command string, not including COMMAND
  424. BEGIN and COMMAND END, that will be sent to this modem to attempt to initiate
  425. a connection at 14400 bps.  A valid modem response is required.  This command
  426. is sent before the DIAL TONE/PULSE commands.
  427.  
  428. Its value can be any sequence of ASCII characters, including control
  429. characters, with a total length not exceeding 40 characters.  There is no
  430. default value because not all modems support this type of functionality.
  431.  
  432. 2.32 ANSWER
  433.  
  434. This keyword is used to specify the command string, not including COMMAND
  435. BEGIN and COMMAND END, that will be sent to this modem to answer a telephone
  436. call.  Valid modem response(s) are required, ending with one of the CONNECT
  437. responses (see below).  This command is sent after receiving a RING response.
  438.  
  439. Its value can be any sequence of ASCII characters, including control
  440. characters, with a total length not exceeding 40 characters.  The default
  441. value is A.
  442.  
  443. 2.33 ESCAPE
  444.  
  445. This keyword is used to specify the command string, not including COMMAND
  446. BEGIN and COMMAND END, that will be sent to this modem to return it to the
  447. command state.  A valid modem response is not required.  This command is sent
  448. before the HANG-UP command.
  449.  
  450. Its value can be any sequence of ASCII characters, including control
  451. characters, with a total length not exceeding 40 characters.  The default
  452. value is +++.
  453.  
  454. 2.34 ESCAPE TIME
  455.  
  456. This keyword is used to specify the amount of time, in seconds, to wait
  457. before and after sending the ESCAPE command.  Its value can be from 1 to 30
  458. seconds. The default value is one second.
  459.  
  460. 2.35 HANG-UP
  461.  
  462. This keyword is used to specify the command string, not including COMMAND
  463. BEGIN and COMMAND END, that will be sent to this modem to hang-up a telephone
  464. call.  A valid modem response is not required.  This command is sent after
  465. the ESCAPE command.
  466.  
  467. Its value can be any sequence of ASCII characters, including control
  468. characters, with a total length not exceeding 40 characters.  The default
  469. value is H.
  470.  
  471. 2.36 HANG-UP TIME
  472.  
  473. This keyword is used to specify the amount of time, in seconds, to wait for a
  474. modem response after sending a HANG-UP command.  Its value can be from two to
  475. 30 seconds. The default value is 10 seconds.
  476.  
  477. 2.37 DTR TIME
  478.  
  479. This keyword is used to specify the amount of time, in seconds, to drop the
  480. DTR signal after sending the HANG-UP command.  Dropping the DTR signal, for
  481. the correct amount of time, is an attempt to add more reliability to modem
  482. hang-up.  Its value can be from one to three seconds.  The default value is
  483. two seconds.
  484.  
  485. 2.38 VERBAL RESPONSE
  486.  
  487. This keyword is used to designate that this modem will return command
  488. responses that are verbal versus numeric.  Its value can be TRUE (verbal) or
  489. FALSE (numeric).  The default value is TRUE.
  490.  
  491. 2.39 RESPONSE BEGIN
  492.  
  493. This keyword is used to specify the beginning of command responses that are
  494. received from this modem.  Its value can be any sequence of ASCII characters,
  495. including control characters, with a total length not exceeding two
  496. characters.  The default value is ^M^J, i.e., carriage return and line feed.
  497.  
  498. 2.40 RESPONSE END
  499.  
  500. This keyword is used to specify the end of command responses that are
  501. received from this modem.  Its value can be any sequence of ASCII characters,
  502. including control characters, with a total length not exceeding two
  503. characters.  The default value is ^M^J, i.e., carriage return and line feed.
  504.  
  505. 2.41 RESPONSE TIME
  506.  
  507. This keyword is used to specify the amount of time, in seconds, to wait for a
  508. modem response after sending a command string.  This is the default response
  509. time for commands that do not have pre-defined response time keywords.  Its
  510. value can be from two to 30 seconds.  The default value is three seconds.
  511.  
  512. 2.42 OK
  513.  
  514. This keyword is used to specify the command response that indicates that a
  515. command or command string was executed by this modem.  This response will be
  516. the result of a successful RESET, INIT, PROTOCOL ON/OFF, DIAL ESCAPE, DIAL
  517. 300/1200/2400/9600/14400, or ESCAPE commands.
  518.  
  519. Its value can be any sequence of ASCII characters, including control
  520. characters, with a total length not exceeding 25 characters.  The default
  521. value is OK.
  522.  
  523. 2.43 RING
  524.  
  525. This keyword is used to specify the command response that indicates that this
  526. modem has detected a ring signal.  It will only be used after completing
  527. reset and all initializations, for non-leased line operations, when GMHS is
  528. monitoring for incoming calls.
  529.  
  530. Its value can be any sequence of ASCII characters, including control
  531. characters, with a total length not exceeding 25 characters.  The default
  532. value is RING.
  533.  
  534. 2.44 RINGING
  535.  
  536. This keyword is also used to specify the command response that indicates that
  537. this modem has detected a ring signal.  However, unlike the RING command
  538. response above, this command response is ignored.
  539.  
  540. Its value can be any sequence of ASCII characters, including control
  541. characters, with a total length not exceeding 25 characters.  The default
  542. value is RINGING.
  543.  
  544. 2.45 NO CARRIER
  545.  
  546. This keyword is used to specify the command response that indicates that no
  547. carrier signal was detected by this modem, or that the carrier signal was
  548. lost.  This response could be the result of an unsuccessful DIAL TONE/PULSE,
  549. ANSWER, or LEASED DIAL/ANSWER command or a successful HANG-UP command.
  550.  
  551. Its value can be any sequence of ASCII characters, including control
  552. characters, with a total length not exceeding 25 characters.  The default
  553. value is NO CARRIER.
  554.  
  555. 2.46 ERROR
  556.  
  557. This keyword is used to specify the command response that indicates that this
  558. modem has received an invalid command or there was an error in the command
  559. string.  This response is not expected by GMHS, which if received when a
  560. modem response is required, will abort the connection.
  561.  
  562. Its value can be any sequence of ASCII characters, including control
  563. characters, with a total length not exceeding 25 characters.  The default
  564. value is ERROR.
  565.  
  566. 2.47 NO DIALTONE
  567.  
  568. This keyword is used to specify the command response that indicates that no
  569. dial tone was detected when this modem went off hook.  This response could be
  570. the result of an unsuccessful DIAL TONE/PULSE or ANSWER command.
  571.  
  572. Its value can be any sequence of ASCII characters, including control
  573. characters, with a total length not exceeding 25 characters.  The default
  574. value is NO DIALTONE.
  575.  
  576. 2.48 BUSY
  577.  
  578. This keyword is used to specify the command response that indicates that this
  579. modem detected a busy signal when it attempted to connect with the remote
  580. modem at the telephone number dialed.  This response could be the result of
  581. an unsuccessful DIAL TONE/PULSE command.
  582.  
  583. Its value can be any sequence of ASCII characters, including control
  584. characters, with a total length not exceeding 25 characters.  The default
  585. value is BUSY.
  586.  
  587. 2.49 NO ANSWER
  588.  
  589. This keyword is used to specify the command response that indicates that no
  590. silence was detected by this modem when dialing a system not providing a dial
  591. tone.  This response is the result of including the @ dial modifier in the
  592. telephone number of an unsuccessful DIAL TONE/PULSE command.
  593.  
  594. Its value can be any sequence of ASCII characters, including control
  595. characters, with a total length not exceeding 25 characters.  The default
  596. value is NO ANSWER.
  597.  
  598. 2.50 VOICE
  599.  
  600. This keyword is used to specify the command response that indicates that this
  601. modem detected a (human) voice when it attempted to connect with the remote
  602. modem at the telephone number dialed.  This response could be the result of
  603. an unsuccessful DIAL TONE/PULSE command.
  604.  
  605. Its value can be any sequence of ASCII characters, including control
  606. characters, with a total length not exceeding 25 characters.  The default
  607. value is VOICE.
  608.  
  609. 2.51 CARRIER
  610.  
  611. This keyword is used to specify the command response that indicates that this
  612. modem detected a carrier signal when it attempted to make a modem protocol
  613. connection.  This response is the result of sending a DIAL TONE/PULSE,
  614. ANSWER, or LEASED DIAL/ANSWER command.  Although this response is currently
  615. only used for informational purposes, its detection and reporting allows for
  616. debugging improper GMHS configurations and incorrect MDF command strings.
  617.  
  618. Its value can be any sequence of ASCII characters, including control
  619. characters, with a total length not exceeding 25 characters.  The default
  620. value is CARRIER.
  621.  
  622. 2.52 PROTOCOL A
  623.  
  624. This keyword is used to specify the command response that indicates that this
  625. modem successfully negotiated a modem protocol connection.  This response is
  626. the result of sending a DIAL TONE/PULSE, ANSWER, or LEASED DIAL/ANSWER
  627. command.  Although this response is currently only used for informational
  628. purposes, its detection and reporting allows for debugging improper GMHS
  629. configurations and incorrect MDF command strings.
  630.  
  631. Its value can be any sequence of ASCII characters, including control
  632. characters, with a total length not exceeding 25 characters.  The default
  633. value is PROTOCOL: LAP-M.
  634.  
  635. 2.53 PROTOCOL B
  636.  
  637. This keyword is used to specify the command response that indicates that this
  638. modem successfully negotiated a modem protocol connection.  This response is
  639. the result of sending a DIAL TONE/PULSE, ANSWER, or LEASED DIAL/ANSWER
  640. command.  Although this response is currently only used for informational
  641. purposes, its detection and reporting allows for debugging improper GMHS
  642. configurations and incorrect MDF command strings.
  643.  
  644. Its value can be any sequence of ASCII characters, including control
  645. characters, with a total length not exceeding 25 characters.  The default
  646. value is /ARQ.
  647.  
  648. 2.54 COMPRESSION
  649.  
  650. This keyword is used to specify the command response that indicates that this
  651. modem successfully negotiated a modem data compression connection.  This
  652. response is the result of sending a DIAL TONE/PULSE, ANSWER, or LEASED
  653. DIAL/ANSWER command.  Although this response is currently only used for
  654. informational purposes, its detection and reporting allows for debugging
  655. improper GMHS configurations and incorrect MDF command strings.
  656.  
  657. Its value can be any sequence of ASCII characters, including control
  658. characters, with a total length not exceeding 25 characters.  The default
  659. value is COMPRESSION.
  660.  
  661. 2.55 CONNECT
  662.  
  663. This keyword is used to specify the command response that indicates that this
  664. modem successfully completed a connection with a remote modem.  This response
  665. is the result of sending a DIAL TONE/PULSE, ANSWER, or LEASED DIAL/ANSWER
  666. command.  It is used in conjunction with the CONNECT 300/1200/2400/9600/14400
  667. responses (see below) to determine the modem connection speed.
  668.  
  669. Its value can be any sequence of ASCII characters, including control
  670. characters, with a total length not exceeding 25 characters.  The default
  671. value is CONNECT.
  672.  
  673. 2.56 CONNECT 300
  674.  
  675. This keyword is used to specify the command response that indicates that this
  676. modem successfully completed a 300 bps connection with a remote modem.  It is
  677. used in conjunction with the CONNECT response to indicate that a 300 bps
  678. serial speed is required if no modem protocol connection was attempted and
  679. ADJUST SPEED is TRUE.
  680.  
  681. Its value can be any sequence of ASCII characters, including control
  682. characters, with a total length not exceeding 25 characters.  The default
  683. value is nothing, i.e., no characters.
  684.  
  685. 2.57 CONNECT 1200
  686.  
  687. This keyword is used to specify the command response that indicates that this
  688. modem successfully completed a 1200 bps connection with a remote modem.  It
  689. is used in conjunction with the CONNECT response to indicate that a 1200 bps
  690. serial speed is required if no modem protocol connection was attempted and
  691. ADJUST SPEED is TRUE.
  692.  
  693. Its value can be any sequence of ASCII characters, including control
  694. characters, with a total length not exceeding 25 characters.  The default
  695. value is 1200.
  696.  
  697. 2.58 CONNECT 2400
  698.  
  699. This keyword is used to specify the command response that indicates that this
  700. modem successfully completed a 2400 bps connection with a remote modem.  It
  701. is used in conjunction with the CONNECT response to indicate that a 2400 bps
  702. serial speed is required if no modem protocol connection was attempted and
  703. ADJUST SPEED is TRUE.
  704.  
  705. Its value can be any sequence of ASCII characters, including control
  706. characters, with a total length not exceeding 25 characters.  The default
  707. value is 2400.
  708.  
  709. 2.59 CONNECT 9600
  710.  
  711. This keyword is used to specify the command response that indicates that this
  712. modem successfully completed a 9600 bps connection with a remote modem.  It
  713. is used in conjunction with the CONNECT response to indicate that a 9600 bps
  714. serial speed is required if no modem protocol connection was attempted and
  715. ADJUST SPEED is TRUE.
  716.  
  717. Its value can be any sequence of ASCII characters, including control
  718. characters, with a total length not exceeding 25 characters.  The default
  719. value is 9600.
  720.  
  721. 2.60 CONNECT 14400
  722.  
  723. This keyword is used to specify the command response that indicates that this
  724. modem successfully completed a 14400 bps connection with a remote modem.  It
  725. is used in conjunction with the CONNECT response to indicate that a 14400 bps
  726. serial speed is required if no modem protocol connection was attempted and
  727. ADJUST SPEED is TRUE.
  728.  
  729. Its value can be any sequence of ASCII characters, including control
  730. characters, with a total length not exceeding 25 characters.  The default
  731. value is 14400.
  732.  
  733. 3.0 Usage
  734.  
  735. MDFs are used by the GMHS when they are referenced as the Modem Type in the
  736. MHS configuration.  GMHS uses the MDF to configure, reset, initialize, dial,
  737. answer, connect, and hang-up modems, both in dial up and leased line
  738. environments.  With GMHS, MDFs can be referenced by more than one serial
  739. port.
  740.  
  741. The information in a MDF is used in various stages of MHS execution and for
  742. different MHS configurations.  These stages can be divided into MDF
  743. initialization, MDF verification, serial port initialization, modem
  744. initialization, modem dialing, modem answering, modem connection, leased line
  745. connection, and modem hang-up.
  746.  
  747. 3.1 MDF Initialization 
  748.  
  749. When the MDF is first referenced, it is processed, i.e., the MDF is opened,
  750. memory is allocated and initialized with the default MDF keyword values, MDF
  751. keywords are read and their values are checked and extracted, and then the
  752. MDF is closed.  If an error occurs due to an invalid MDF keyword and/or
  753. value, an error may be logged and displayed and the MDF keyword and/or value
  754. will be ignored.
  755.  
  756. 3.2 MDF Verification
  757.  
  758. MDFs can be used for validation of modem configuration.  GMHS validates the
  759. following information using the MDF:
  760.  
  761. * Is the Modem Speed valid for this modem, i.e., is it in the list of MODEM
  762. SPEEDS?  If this MDF keyword is not specified, only speeds of 300, 1200,
  763. 2400, and 9600 are allowed.
  764.  
  765. * If configured for Yes, is Modem Negotiation valid for this modem, i.e., are
  766. PROTOCOL ON and PROTOCOL OFF specified?
  767.  
  768. * If configured for Yes, is Leased Line valid for this modem, i.e., are
  769. LEASED DIAL and LEASED ANSWER specified?
  770.  
  771. * If Optional Modem Commands are specified, do they exceed the MAX COMMAND
  772. length?
  773.  
  774. 3.3 Serial Port Initialization
  775.  
  776. GMHS initializes a serial port for 8 data bits, 1 stop bit, no parity, the
  777. configured speed, and with RTS/CTS flow control disabled.  The RTS and DTR
  778. signals are also raised.  After a modem connection (see below), GMHS monitors
  779. for an active DCD signal from a modem, and if FLOW CONTROL is TRUE, also the
  780. CTS signal.
  781.  
  782. The maximum data rate supported varies, depending on the type of serial port
  783. (COMx or intelligent multi-port serial adapters), type of CPU, clock speed,
  784. etc.  GMHS, which uses AIO, generally is limited to 2400 bps for COMx ports
  785. and 38.4K bps for serial adapters.
  786.  
  787. 3.4 Modem Initialization
  788.  
  789. The modem is only initialized and used when a connection to another MHS host
  790. is required.  In the case of GMHS, if a modem is configured for a Modem Mode
  791. of Answer or Answer/Dial, the modem will be initialized and monitored
  792. immediately for incoming calls.  Otherwise, modem initialization is done
  793. before modem dialing (see below).
  794.  
  795. First, a check is made for a previous off-hook, active connection which may
  796. need to be hung up.  Active connections are recognized by an active DCD
  797. signal, which causes modem hang-up to be initiated (see below).
  798.  
  799. Second, if Modem Negotiation is configured for Yes or ADJUST SPEED is FALSE,
  800. the serial speed will be changed to either the MAX SPEED or the maximum speed
  801. of the serial port, whichever is smaller.
  802.  
  803. Third, the RESET command is sent, waiting up to RESET TIME + 1 seconds for a
  804. response.  If there is no response, the speed will be changed to 1200 bps and
  805. the RESET command resent.  A valid response is not required to continue
  806. initialization.
  807.  
  808. Fourth, the first INIT command is sent, waiting up to RESPONSE TIME seconds
  809. for a response.  If there are no or error responses, this command is resent;
  810. a valid response is not required.
  811.  
  812. At this point, the modem should be initialized properly and should respond
  813. properly.  If there are second and third INIT commands, they are sent one at
  814. a time, waiting up to RESPONSE TIME seconds for each response.  If there are
  815. no responses or error responses, these commands are resent.  If there are
  816. still no responses or error responses, this modem will not be used for a
  817. configured delay and an error may be logged and displayed.
  818.  
  819. If there are valid responses, initialization continues with the speaker and
  820. protocol commands.  If Modem Speaker is configured for On, the SPEAKER ON
  821. command is sent; otherwise, the SPEAKER OFF command is sent.  If Modem
  822. Negotiation is configured for Yes, the PROTOCOL ON command is then sent;
  823. otherwise, the PROTOCOL OFF command is then sent.  There is a wait of
  824. RESPONSE TIME seconds for responses.  If there are no or error responses,
  825. these commands are resent; valid responses for speaker and protocol commands
  826. are not required.
  827.  
  828. 3.5 Modem Dialing
  829.  
  830. When an outgoing call is requested, the following steps are followed.  In the
  831. case of GMHS, if the modem was being monitored for incoming calls and the
  832. configuration of Modem Negotiation is different, either the PROTOCOL ON or
  833. PROTOCOL OFF commands are sent.  GMHS waits up to RESPONSE TIME seconds for
  834. responses.  If there are no responses or error responses, GMHS resends these
  835. commands; however, a valid response is not required.
  836.  
  837. If ADJUST SPEED is TRUE, GMHS will then change the serial speed to the
  838. configured or maximum speed of the serial port, whichever is smaller.  If
  839. ADJUST SPEED is FALSE, GMHS will then send the DIAL command that corresponds
  840. to the configured or maximum speed of the serial port, whichever is smaller.
  841.  
  842. GMHS will then send any Optional Modem Commands that have been configured,
  843. waiting up to RESPONSE TIME seconds for a response.  If there are no or error
  844. responses, these commands are resent; however, a valid response is not
  845. required.
  846.  
  847. Finally, the configured prefix and telephone number strings are combined with
  848. either the DIAL TONE or DIAL PULSE dial command, depending on the
  849. configuration.  GMHS will send this combined dial command string, waiting up
  850. to the configured time for a modem connection (see below).  If the MAX
  851. COMMAND length is reached, the DIAL ESCAPE character is used to break up a
  852. prefix + telephone number string into multiple dial command strings, which
  853. are sent one after another, waiting for valid responses in between dial
  854. commands.
  855.  
  856. 3.6 Modem Answering
  857.  
  858. GMHS supports incoming calls and therefore, must answer modems.  If a modem
  859. is configured for a Modem Mode of Answer or Answer/Dial, GMHS will
  860. continually monitor the modem for incoming calls, i.e., it will poll the
  861. modem for the RING response.  When a RING response has been received, GMHS
  862. sends the ANSWER command, waiting up to 60 seconds for a modem connection
  863. (see below).
  864.  
  865. If an unknown or error response is received, the serial port and modem will
  866. be reset and re-initialized and if successful, GMHS will again start polling
  867. for the RING response.
  868.  
  869. 3.7 Modem Connection
  870.  
  871. After modem dial, modem answer, or leased line commands are sent, GMHS polls
  872. for a CONNECT response.  Some modems will return informational responses
  873. before the CONNECT response, i.e., RINGING, CARRIER, COMPRESSION, and
  874. PROTOCOL A/B.  Some modems will also return these informational responses as
  875. part of the CONNECT response.  All these cases are handled.
  876.  
  877. In case of errors, modems will also return responses like ERROR, NO CARRIER,
  878. NO DIALTONE, BUSY, NO ANSWER, and VOICE.  All these cases are handled.  After
  879. receiving the CONNECT response, if ADJUST SPEED is TRUE and the current
  880. serial speed does not match the CONNECT speed, the serial speed will be
  881. changed to the CONNECT speed.
  882.  
  883. After modem connection, if FLOW CONTROL is TRUE, the RTS/CTS flow control is
  884. enabled.  GMHS also starts monitoring for an inactive DCD to indicate lost
  885. carrier/connection.  If DCD is inactive, modem hang-up will be initiated (see
  886. below).
  887.  
  888. 3.8 Leased Line Connection
  889.  
  890. GMHS supports leased lines and therefore, must initialize and monitor modems
  891. for leased line connections.  If Leased Line is Yes, GMHS sends either the
  892. LEASED ANSWER or the LEASED DIAL command at the end of modem initialization,
  893. depending on if Modem Mode is Answer or Dial respectively.  GMHS then polls
  894. for a modem connection (see above) indefinitely.
  895.  
  896. There are two special cases for leased line modems.  If LEASED EXTERNAL is
  897. TRUE, GMHS does not send the LEASED ANSWER or LEASED DIAL commands; this
  898. modem was setup externally for leased line operation, usually with physical
  899. switches.  If LEASED RESPONSE is FALSE, GMHS does not poll for modem
  900. connection responses; instead, the modem is polled for an active DCD signal
  901. to indicate a modem connection.
  902.  
  903. 3.9 Modem Hang-up
  904.  
  905. If FLOW CONTROL is TRUE, the RTS/CTS flow control mechanism is disabled. 
  906. Then, the COMMAND END characters are sent, finishing any previous modem
  907. commands.  To make certain the modem is in its command state, a delay of
  908. ESCAPE TIME seconds is initiated, the ESCAPE command is sent, and then an
  909. additional delay of ESCAPE TIME seconds plus a minimum of RESPONSE TIME
  910. seconds or a maximum of 30 seconds for no responses is initiated.
  911.  
  912. Finally, the HANG-UP command is sent, waiting up to HANG-UP TIME seconds for
  913. a response.  To ensure that hang-up will occur, the DTR signal is also
  914. dropped and after DTR TIME seconds, the DTR signal is raised.
  915.  
  916. Appendix A -- General Guidelines for Creating a MDF
  917.  
  918. There are some general guidelines that should be followed when creating a
  919. MDF:
  920.  
  921. (1) Do not modify a released MDF; instead, create a separate MDF.
  922.  
  923. (2) Assume that the modem is in an unknown state prior to its use.
  924.  
  925. (3) Try not to use &F (recall factory profile) because you may override a
  926. feature not specified in the MDF.
  927.  
  928. (4) Try not to use &W (write active profile to memory) because you may affect
  929. a previous/future modem configuration and the NVRAM memory has a limited
  930. number of writes before it is unusable.
  931.  
  932. (5) Don't rely on the Z (RESET) command to recall a previously saved modem
  933. configuration since this may have been overwritten by a previous
  934. user/application.
  935.  
  936. (6) Only use the pre-defined keywords that are relevant to this modem and
  937. whose default's are not sufficient for this modem. 
  938. (7) Where appropriate, use comment lines throughout the MDF.
  939.  
  940. (8) Each MDF name is limited to the eight character maximum of DOS and the
  941. NetWare file systems.  MDF names should be as descriptive as possible since
  942. current MHS products only display the MDF filename for selecting a Modem
  943. Type.  Generally, the first part of the name should be an abbreviation for
  944. the manufacturer of the modem, e.g., "HAYES", and the second part the
  945. abbreviation of model number or maximum speed, e.g., "96".  If the eight
  946. character maximum name has not been reached, a single character abbreviation
  947. should be added to denote a series or capability, e.g., "v" for V-series or
  948. "e" for error-control.  The extension is always MDF.
  949.  
  950. (9) The MDFs must reside in special subdirectories, which are different for
  951. each MHS product.  GMHS requires the MDFs to be in the
  952. <NGM-root-dir>\ASYNC\MODEMDEF directory.
  953.  
  954. Appendix B -- Example MDF for a Hayes Smartmodem 2400
  955.  
  956. MDF DESCRIPTION=Hayes Smartmodem 2400 and compatibles
  957. MDF VERSION=2
  958. MDF TYPE=HAYES
  959. MODEM SPEEDS=300,1200,2400
  960. MAX SPEED=2400
  961. MAX COMMAND=40
  962. INIT=EQV1X4S0=0S2=43S3=13S4=10S7=254S12=50
  963. INIT=&C1&D3&L
  964. LEASED DIAL=&L1D
  965. LEASED ANSWER=&L1A
  966.  
  967. Appendix C -- Example MDF for a Hayes V-series ULTRA Smartmodem 9600
  968.  
  969. MDF DESCRIPTION=Hayes V-series ULTRA Smartmodem 9600
  970. MDF VERSION=2
  971. MDF TYPE=HAYES
  972. MODEM SPEEDS=300,1200,2400,9600
  973. MAX SPEED=38400
  974. MAX COMMAND=255
  975. FLOW CONTROL=TRUE
  976. ADJUST SPEED=FALSE
  977. INIT=EQV1X4S0=0S2=43S3=13S4=10S7=254S12=50
  978. INIT=N1W1&C1&D3&K3&L
  979. INIT=S30=0S37=0S49=8S50=16S95=32
  980. DIAL 300=S37=3
  981. DIAL 1200=S37=5
  982. DIAL 2400=S37=6
  983. DIAL 9600=S37=9
  984. LEASED DIAL=&L1D
  985. LEASED ANSWER=&L1A
  986. PROTOCOL ON=&Q5S36=7S38=20S46=2S48=7
  987. PROTOCOL OFF=&Q6
  988. PROTOCOL A=PROTOCOL: LAP-M
  989. PROTOCOL B=PROTOCOL: ALT
  990.  
  991. Appendix D -- Example MDF for a US Robotics Courier HST
  992.  
  993. MDF DESCRIPTION=USRobotics Courier HST, HST dual standard, and V.32bis
  994. MDF VERSION=2
  995. MDF TYPE=HAYES
  996. MODEM SPEEDS=300,1200,2400,9600,14400
  997. MAX SPEED=38400
  998. MAX COMMAND=40
  999. FLOW CONTROL=TRUE
  1000. ADJUST SPEED=FALSE
  1001. INIT=EQV1X6S0=0S2=43S3=13S4=10S7=255S12=50
  1002. INIT=BC1F1&A1&C1&D2&B1&H1&L&N0&R2S19=0
  1003. LEASED DIAL=
  1004. LEASED ANSWER=
  1005. LEASED EXTERNAL=TRUE
  1006. LEASED RESPONSE=TRUE
  1007. PROTOCOL ON=&K2&M4
  1008. PROTOCOL OFF=&M
  1009. PROTOCOL A=/ARQ
  1010. ;
  1011. ; For leased line operation, do the following steps:
  1012. ; 1.  Set your terminal or communications software to 38.4K bps.
  1013. ; 2.  Send the modem the following command: AT&B1&S2&H1&L1&W
  1014. ; 3.  Set the modem to load NVRAM settings at power-on, DIP switch 10 UP.
  1015. ; 4.  If this is the answering modem, set the modem to Auto Answer, DIP
  1016. switch 5 UP. If this is the calling modem, set the modem to Auto Answer
  1017. suppressed, DIP switch 5 DOWN.
  1018. ; 5.  Power off the modem.
  1019. ; 6.  On the NetWare server, select a 38.4K bps capable port and attach it to
  1020. the modem.
  1021. ; 7.  Configure this port for leased line operation and for a USRHST.
  1022. ; 8.  Repeat these or similar steps for the remote modem.
  1023. ; 9.  Turn on the calling modem first, followed by the answering modem.
  1024. ; 10. The modems should then go off hook and establish the connection.
  1025. ; 11. If unsuccessful, repeat step 9.
  1026.  
  1027. Appendix E -- Debugging MDFs with NetWare Global MHS
  1028.  
  1029. This section contains information to assist in debugging MDFs using the GMHS
  1030. product and its NGMAMP.NLM program, which can display information on the
  1031. screen as well as in log file(s) when modem interactions take place.  This
  1032. information takes the form of events, either connection, modem, port, or
  1033. error events.  Events are further divided into major events, minor events,
  1034. and error codes; the important ones for debugging MDFs are listed below.  The
  1035. screen display is enabled by loading the NGMAMP.NLM with the -S command line
  1036. option.
  1037.  
  1038. The GMHS log files can be found in a <NGM-root-dir>\LOGS directory,
  1039. referenced by the day of the week.  The size of an individual log file is
  1040. controlled by an option in the GMHS configuration file, which can be found in
  1041. a SYS:\SYSTEM\NGM.CFG file.  This option, Maximum-Log-Size, has a default of
  1042. 200K and GMHS will start overwriting a log file when this maximum has been
  1043. reached.
  1044.  
  1045. The NGMAMP log files are further referenced by the type of serial ports used
  1046. to interface to the configured modems.  For example, the events for the COM1
  1047. serial port can be found in the 01-00-00 file.  The number of events is
  1048. generally influenced by the verbosity level, which can be set using another
  1049. option, Log-Verbosity, in a NGM.CFG file or via the GMHS administration
  1050. program NGMADMIN.NLM.
  1051.  
  1052. The default setting for NGMAMP is verbosity level six, which displays
  1053. connection and error events.  A verbosity level of nine displays these events
  1054. as well as (serial) port and modem events.  When debugging modem (and MDF)
  1055. problems, set the verbosity level to nine.
  1056.  
  1057. 1) Connection Events
  1058.  
  1059. The major events are OutboundCall, PollingCall, and InboundCall.  There are
  1060. many possible minor events but the important ones are Opening, Dialing,
  1061. ModemControl, LoggingIn, CallerID, LoggingOut, HangingUp, and Closed.  These
  1062. events track the high level actions that cause MHS to access serial ports and
  1063. modems.  Refer to the GMHS Codes and Messages manual for details on these
  1064. events.
  1065.  
  1066. 2) Modem Events
  1067.  
  1068. The major event is Modem.  The minor events are Definition, Command,
  1069. Response, Reset, Initialize, Dial, Answer, Ring, Hangup, Connect, Leased, and
  1070. Speed.  A period in a Response event string implies a one second period of
  1071. time when no characters were received.  These events track the low level
  1072. actions of MHS modem control.  Refer to the GMHS Codes and Messages manual
  1073. for details on these events.
  1074.  
  1075. 3) (Serial) Port Events
  1076.  
  1077. The major event is Port.  The minor events are PortNames, AcquirePort,
  1078. ReleasePort, ChangeSpeed, ChangePort, FlowControl, and SetDTR.  These events
  1079. track the low level actions of MHS serial port control.  Refer to the GMHS
  1080. Codes and Messages manual for details on these events.
  1081.  
  1082. 4) Error Events
  1083.  
  1084. The major events are SevereError, MajorError, Error, InternalErr, Warning,
  1085. and Advisory.  The modem errors are identified with #326, followed by the
  1086. range #19000 to #19999.  The port errors are identified with #256, followed
  1087. by the range #20000 to #20999.  Refer to the GMHS Codes and Messages manual
  1088. for details on these errors.y